package com.gongren.project.job.odd;

import com.gongren.project.odd.job.rpc.api.service.taskRpc.ITipsTaskRpcService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.dubbo.config.annotation.Reference;


/**
 * @Author houzhong
 * @Date 2017/9/2 10:51
 */
@Component("tipsTask")
public class TipsTask {

    private static final Logger LOGGER = LoggerFactory.getLogger(TipsTask.class);

    @Reference
    private ITipsTaskRpcService tipsTaskRpcService;

    /**
     *
     * 功能描述: <br>
     * 提醒企业管理雇员;每天下午2点;短信通知;企业发的零工，有人接单但未审批，一个企业仅通知一次 Author: zhcy Date:
     * 2017年5月18日 下午1:37:35
     *
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Transactional
    //@Scheduled(cron = "0 0 14 * * ? ")
    public void excuteTipstoManageEmployeesTask(){
        LOGGER.info("TipsTask and excuteTipstoManageEmployeesTask start");
        try {
            tipsTaskRpcService.findAllExcuteTipstoManageEmployeesTask();

            LOGGER.info("TipsTask and excuteTipstoManageEmployeesTask end");
        }catch (Exception e) {
            LOGGER.error("TipsTask and excuteTipstoManageEmployeesTask：", e);
        }
    }

    /**
     *
     * 功能描述: <br>
     * 提醒企业验收;每天下午3：30;短信通知;企业发的零工，有人已确认完工，但企业还未验收，一个企业仅通知一次 Author: zhcy Date:
     * 2017年5月18日 下午1:38:13
     *
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Transactional
    //@Scheduled(cron = "0 30 15 * * ? ")
    public void excuteTipstoAcceptanceTask(){
        LOGGER.info("TipsTask and excuteTipstoAcceptanceTask start");
        try {
            tipsTaskRpcService.findAllExcuteTipstoAcceptanceTask();

            LOGGER.info("TipsTask and excuteTipstoAcceptanceTask end");
        }catch (Exception e) {
            LOGGER.error("TipsTask and excuteTipstoAcceptanceTask：", e);
        }
    }

    /**
     *
     * 功能描述: <br>
     * 提醒企业支付报酬;每天下午4点;短信通知;企业发的零工，需要支付报酬，但还未支付，一个企业仅通知一次 Author: zhcy Date:
     * 2017年5月18日 下午1:39:22
     *
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Transactional
    //@Scheduled(cron = "0 0 16 * * ? ")
    public void excuteTipstoPayTask(){

        LOGGER.info("TipsTask and excuteTipstoPayTask start");
        try {
            tipsTaskRpcService.findAllExcuteTipstoPayTask();

            LOGGER.info("TipsTask and excuteTipstoPayTask end");
        }catch (Exception e) {
            LOGGER.error("TipsTask and excuteTipstoPayTask：", e);
        }
    }

    /**
     *
     * 功能描述: <br>
     * 提醒代理商接单;每天上午10点;短信通知;企业的零工市场有零工，但未接单，一个企业仅通知一次 Author: zhcy Date:
     * 2017年5月18日 下午1:48:56
     *
     * @throws Exception
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Transactional
    //@Scheduled(cron = "0 0 10 * * ? ")
    public void excuteTipstoJobMasterTask(){

        LOGGER.info("TipsTask and excuteTipstoJobMasterTask start");
        try {
            tipsTaskRpcService.findAllExcuteTipstoJobMasterTask();

            LOGGER.info("TipsTask and excuteTipstoJobMasterTask end");
        }catch (Exception e) {
            LOGGER.error("TipsTask and excuteTipstoJobMasterTask：", e);
        }
    }
}
